home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Dev / lame_src / API < prev    next >
Text File  |  2000-01-01  |  2KB  |  73 lines

  1. The LAME API
  2.  
  3. This is the simple interface to the lightweight encoding library
  4. obtained by compiling libmp3lame.a without defining any of
  5. the following extra features:
  6.  
  7. #define HAVEMPGLIB   to use mpglib's mp3 *decoding* capibility
  8. #define AMIGA_MPEGA  to use mpega.library (Amiga), don't use with HAVEMPGLIB
  9.  
  10. #define HAVEVORBIS   to use libvorbis decoding and encoding capibility
  11.  
  12. #define LIBSNDFILE   to use Erik de Castro Lopo's libsndfile
  13. #define LAMESNDFILE  to use LAME's minimial internal sndfile I/O
  14.  
  15. #define BRHIST       to allow the optional display of the VBR historgram
  16. #define NOTERMCAP    to try and emulate termcap/ncurses directly (ANSI)
  17.                      only needed if BRHIST is used
  18.  
  19.  
  20. To use any of the above features, see lame.h more for details.
  21. For an example of a simple command line interface to lame, see
  22. main.c
  23.  
  24.  
  25. =========================================================================
  26.  
  27. 1. (optional) Get the version number of the encoder, if you are interested.  
  28.    lame_version(char *);
  29.  
  30. 2. Initialize the encoder.  sets default for all encoder parameters.
  31.  
  32.    #include "lame.h"
  33.    lame_global_flags gf;
  34.    lame_init(&gf);
  35.  
  36. Then override various default settings as necessary, for example:
  37.  
  38.    gf.num_channels=2;
  39.    gf.in_samplerate = 44100;
  40.    gf.brate = 128;
  41.    gf.mode = 0,1 or 3      /* stereo, jstereo, mono */
  42.    gf.quality = 2,5 or 9       /* 2=high, 5=medium 9=low */
  43.  
  44. see lame.h for the complete list of options.
  45.  
  46.  
  47. 3. sets more internal configuration based on data provided above:
  48.    lame_init_params(&gf);
  49.  
  50.  
  51.  
  52. 4. Encode some data.  input pcm data, output (maybe) mp3 frames.
  53. This routine handles all buffering, resampling and filtering for you.
  54. The required mp3buffer_size can be computed from num_samples, 
  55. samplerate and encoding rate, but here is a worst case estimate:
  56. mp3buffer_size (in bytes) = 1.25*num_samples + 7200
  57. The return code = number of bytes output in mp3buffer.  This can be 0.
  58. If it is <0, an error occured.  
  59.  
  60.    int lame_encode_buffer(lame_global_flags *gfp,
  61.          short int leftpcm[], short int rightpcm[],
  62.          int num_samples,char *mp3buffer,int  mp3buffer_size);
  63.  
  64.  
  65. 5. lame_encode_finish will flush the buffers and may return a 
  66. final few mp3 frames.  mp3buffer should be at least 7200 bytes.
  67. return code = number of bytes output to mp3buffer.  This can be 0.
  68.  
  69.    int lame_encode_finish(lame_global_flags *gfp,char *mp3buffer);
  70.  
  71.  
  72.  
  73.